/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package dto;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.*;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;

/**
 *
 * @author chokurey
 */
@Entity
@Table(name = "empresa")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Empresa.findAll", query = "SELECT e FROM Empresa e"),
    @NamedQuery(name = "Empresa.findByNit", query = "SELECT e FROM Empresa e WHERE e.nit = :nit"),
    @NamedQuery(name = "Empresa.findByPassword", query = "SELECT e FROM Empresa e WHERE e.password = :password"),
    @NamedQuery(name = "Empresa.findByNombre", query = "SELECT e FROM Empresa e WHERE e.nombre = :nombre"),
    @NamedQuery(name = "Empresa.findByRepresentantelegal", query = "SELECT e FROM Empresa e WHERE e.representantelegal = :representantelegal"),
    @NamedQuery(name = "Empresa.findByDepto", query = "SELECT e FROM Empresa e WHERE e.depto = :depto"),
    @NamedQuery(name = "Empresa.findByDireccion", query = "SELECT e FROM Empresa e WHERE e.direccion = :direccion"),
    @NamedQuery(name = "Empresa.findByTelefono", query = "SELECT e FROM Empresa e WHERE e.telefono = :telefono"),
    @NamedQuery(name = "Empresa.findByCelular", query = "SELECT e FROM Empresa e WHERE e.celular = :celular"),
    @NamedQuery(name = "Empresa.findByEmail", query = "SELECT e FROM Empresa e WHERE e.email = :email"),
    @NamedQuery(name = "Empresa.findByMapa", query = "SELECT e FROM Empresa e WHERE e.mapa = :mapa"),
    @NamedQuery(name = "Empresa.findByEstadousuario", query = "SELECT e FROM Empresa e WHERE e.estadousuario = :estadousuario"),
    @NamedQuery(name = "Empresa.findByPlan", query = "SELECT e FROM Empresa e WHERE e.plan = :plan"),
    @NamedQuery(name = "Empresa.findByCantpromociones", query = "SELECT e FROM Empresa e WHERE e.cantpromociones = :cantpromociones"),
    @NamedQuery(name = "Empresa.findByCantservicios", query = "SELECT e FROM Empresa e WHERE e.cantservicios = :cantservicios"),
    @NamedQuery(name = "Empresa.findByCanteventos", query = "SELECT e FROM Empresa e WHERE e.canteventos = :canteventos"),
    @NamedQuery(name = "Empresa.findByCantclasificados", query = "SELECT e FROM Empresa e WHERE e.cantclasificados = :cantclasificados"),
    @NamedQuery(name = "Empresa.findByFecharegistro", query = "SELECT e FROM Empresa e WHERE e.fecharegistro = :fecharegistro"),
    @NamedQuery(name = "Empresa.findByFechainicioservicio", query = "SELECT e FROM Empresa e WHERE e.fechainicioservicio = :fechainicioservicio"),
    @NamedQuery(name = "Empresa.findByFechafinservicio", query = "SELECT e FROM Empresa e WHERE e.fechafinservicio = :fechafinservicio"),
    @NamedQuery(name = "Empresa.findByCantproductos", query = "SELECT e FROM Empresa e WHERE e.cantproductos = :cantproductos"),
    @NamedQuery(name = "Empresa.findByPagweb", query = "SELECT e FROM Empresa e WHERE e.pagweb = :pagweb"),
    @NamedQuery(name = "Empresa.findByCantfotosplancompl", query = "SELECT e FROM Empresa e WHERE e.cantfotosplancompl = :cantfotosplancompl")})
public class Empresa implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "nit")
    private String nit;
    @Column(name = "password")
    private String password;
    @Column(name = "nombre")
    private String nombre;
    @Column(name = "representantelegal")
    private String representantelegal;
    @Column(name = "depto")
    private String depto;
    @Column(name = "direccion")
    private String direccion;
    @Column(name = "telefono")
    private String telefono;
    @Column(name = "celular")
    private String celular;
    @Column(name = "email")
    private String email;
    @Column(name = "mapa")
    private String mapa;
    @Column(name = "estadousuario")
    private String estadousuario;
    @Lob
    @Column(name = "logo")
    private String logo;
    @Column(name = "plan")
    private String plan;
    @Column(name = "cantpromociones")
    private Integer cantpromociones;
    @Column(name = "cantservicios")
    private Integer cantservicios;
    @Column(name = "canteventos")
    private Integer canteventos;
    @Column(name = "cantclasificados")
    private Integer cantclasificados;
    @Lob
    @Column(name = "infoempresa")
    private String infoempresa;
    @Lob
    @Column(name = "actividadeconomica")
    private String actividadeconomica;
    @Column(name = "fecharegistro")
    @Temporal(TemporalType.DATE)
    private Date fecharegistro;
    @Column(name = "fechainicioservicio")
    @Temporal(TemporalType.DATE)
    private Date fechainicioservicio;
    @Column(name = "fechafinservicio")
    @Temporal(TemporalType.DATE)
    private Date fechafinservicio;
    @Column(name = "cantproductos")
    private Integer cantproductos;
    @Column(name = "pagweb")
    private String pagweb;
    @Column(name = "cantfotosplancompl")
    private Integer cantfotosplancompl;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "empresanit")
    private List<Servicios> serviciosList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "empresanit")
    private List<Eventos> eventosList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "empresanit")
    private List<Productos> productosList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "empresanit")
    private List<Promociones> promocionesList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "empresanit")
    private List<Fotos> fotosList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "empresanit")
    private List<Clasificados> clasificadosList;

    public Empresa() {
    }

    public Empresa(String nit) {
        this.nit = nit;
    }

    public String getNit() {
        return nit;
    }

    public void setNit(String nit) {
        this.nit = nit;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getRepresentantelegal() {
        return representantelegal;
    }

    public void setRepresentantelegal(String representantelegal) {
        this.representantelegal = representantelegal;
    }

    public String getDepto() {
        return depto;
    }

    public void setDepto(String depto) {
        this.depto = depto;
    }

    public String getDireccion() {
        return direccion;
    }

    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }

    public String getTelefono() {
        return telefono;
    }

    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }

    public String getCelular() {
        return celular;
    }

    public void setCelular(String celular) {
        this.celular = celular;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getMapa() {
        return mapa;
    }

    public void setMapa(String mapa) {
        this.mapa = mapa;
    }

    public String getEstadousuario() {
        return estadousuario;
    }

    public void setEstadousuario(String estadousuario) {
        this.estadousuario = estadousuario;
    }

    public String getLogo() {
        return logo;
    }

    public void setLogo(String logo) {
        this.logo = logo;
    }

    public String getPlan() {
        return plan;
    }

    public void setPlan(String plan) {
        this.plan = plan;
    }

    public Integer getCantpromociones() {
        return cantpromociones;
    }

    public void setCantpromociones(Integer cantpromociones) {
        this.cantpromociones = cantpromociones;
    }

    public Integer getCantservicios() {
        return cantservicios;
    }

    public void setCantservicios(Integer cantservicios) {
        this.cantservicios = cantservicios;
    }

    public Integer getCanteventos() {
        return canteventos;
    }

    public void setCanteventos(Integer canteventos) {
        this.canteventos = canteventos;
    }

    public Integer getCantclasificados() {
        return cantclasificados;
    }

    public void setCantclasificados(Integer cantclasificados) {
        this.cantclasificados = cantclasificados;
    }

    public String getInfoempresa() {
        return infoempresa;
    }

    public void setInfoempresa(String infoempresa) {
        this.infoempresa = infoempresa;
    }

    public String getActividadeconomica() {
        return actividadeconomica;
    }

    public void setActividadeconomica(String actividadeconomica) {
        this.actividadeconomica = actividadeconomica;
    }

    public Date getFecharegistro() {
        return fecharegistro;
    }

    public void setFecharegistro(Date fecharegistro) {
        this.fecharegistro = fecharegistro;
    }

    public Date getFechainicioservicio() {
        return fechainicioservicio;
    }

    public void setFechainicioservicio(Date fechainicioservicio) {
        this.fechainicioservicio = fechainicioservicio;
    }

    public Date getFechafinservicio() {
        return fechafinservicio;
    }

    public void setFechafinservicio(Date fechafinservicio) {
        this.fechafinservicio = fechafinservicio;
    }

    public Integer getCantproductos() {
        return cantproductos;
    }

    public void setCantproductos(Integer cantproductos) {
        this.cantproductos = cantproductos;
    }

    public String getPagweb() {
        return pagweb;
    }

    public void setPagweb(String pagweb) {
        this.pagweb = pagweb;
    }

    public Integer getCantfotosplancompl() {
        return cantfotosplancompl;
    }

    public void setCantfotosplancompl(Integer cantfotosplancompl) {
        this.cantfotosplancompl = cantfotosplancompl;
    }

    @XmlTransient
    public List<Servicios> getServiciosList() {
        return serviciosList;
    }

    public void setServiciosList(List<Servicios> serviciosList) {
        this.serviciosList = serviciosList;
    }

    @XmlTransient
    public List<Eventos> getEventosList() {
        return eventosList;
    }

    public void setEventosList(List<Eventos> eventosList) {
        this.eventosList = eventosList;
    }

    @XmlTransient
    public List<Productos> getProductosList() {
        return productosList;
    }

    public void setProductosList(List<Productos> productosList) {
        this.productosList = productosList;
    }

    @XmlTransient
    public List<Promociones> getPromocionesList() {
        return promocionesList;
    }

    public void setPromocionesList(List<Promociones> promocionesList) {
        this.promocionesList = promocionesList;
    }

    @XmlTransient
    public List<Fotos> getFotosList() {
        return fotosList;
    }

    public void setFotosList(List<Fotos> fotosList) {
        this.fotosList = fotosList;
    }

    @XmlTransient
    public List<Clasificados> getClasificadosList() {
        return clasificadosList;
    }

    public void setClasificadosList(List<Clasificados> clasificadosList) {
        this.clasificadosList = clasificadosList;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (nit != null ? nit.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Empresa)) {
            return false;
        }
        Empresa other = (Empresa) object;
        if ((this.nit == null && other.nit != null) || (this.nit != null && !this.nit.equals(other.nit))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "dto.Empresa[ nit=" + nit + " ]";
    }
    
}
